package org.test.aop;
import org.springframework.aop.ThrowsAdvice;
import org.springframework.stereotype.Component;

import java.lang.reflect.Method;

/**
 * Created by Hy on 2018/7/6.
 * Spring AOP:抛出增强类
 * 该类实现ThrowsAdvice接口，在接口方法中可以获取方法、参数、目标对象、异常对象等信息。
 * 我们可以把这些信息统一写入到日志中，也可以持久化到数据库
 *
 */
@Component
public class GreetingThrowAdvice implements ThrowsAdvice {

    public void afterThrowing(Method method, Object[] args,Object target,Exception e){
        System.out.println("-----------------Throw Exception---------------------");
        System.out.println("Target Class:"+target.getClass().getName());
        System.out.println("Method Name:"+method.getName());
        System.out.println("Exception  Message:"+e.getMessage());
        System.out.println("-----------------------------------------------------");
    }
}
